home *** CD-ROM | disk | FTP | other *** search
/ Light ROM 3 / Light ROM 3 - Disc 2.iso / programs / amiga / 3d / shelly / readme next >
Text File  |  1995-03-23  |  25KB  |  757 lines

  1.                                                              21.11.1994
  2.  
  3. Welcome to:
  4.  
  5.               SHELLY V1.6
  6.               -----------
  7.  
  8.  
  9.         INTRODUCTION:
  10.         -------------
  11.         
  12.         Shelly generates 3D-Objects of various seashells, slug-houses etc.
  13.         for: POV-V2.0, Real3DV2, X3D and T3Dlib 
  14.         (the last means Imagine, DXF, Rayshade... support! ). 
  15.  
  16.         It uses an @{"algorithm" link Algorithm} found in:
  17.          Computer&Graphics Vol. 17,No. 1,pp. 79-84, 1993
  18.          ("DIGITAL SEASHELLS" by M.B. Cortie.)
  19.  
  20.         It was written in (portable) C using GCC2.6.3 
  21.         and TDS, on an AMIGA.
  22.  
  23.         The Real3D output is a RPL-Macro executable via "Execute named" 
  24.         in the "Macros"-submenu.  
  25.         The T3D-output can be converted via TDDD2xxx to many different
  26.         formats (of course you'll have to get the converters first)
  27.         (available on Aminet, look in 'pub/aminet/gfx/3d/' ...)
  28.  
  29.  
  30.        Changes:
  31.        --------
  32.  
  33.        from V1.5 to V1.6:
  34.        ------------------
  35.        - added simple animation mode -> @{"Usage" link Usage} 
  36.        
  37.        - more example pictures (pic/) + their datafiles (shy/) available,
  38.          mostly rendered with Real3D on my A4000
  39.        
  40.        - the exe does not need ixemul.library anymore 
  41.          (but shelly.ix !)
  42.  
  43.        - a new (POV-)output-mode uses Bezierpatches (Keyword: 'BEZ')
  44.  
  45.        - R3D2-output of NEWNOD-mode creates a "triset" instead of a bunch of
  46.          triangles
  47.        
  48.        - added pic/parameters.iff (illustrates the use of some parameters),
  49.          (took me some hours with PPaint ;)
  50.  
  51.        - Daniel Aregger programmed a nice GUI for Shelly 
  52.          (for the Amiga) 
  53.          this will be uploaded separately, look for FSG (Funky Shelly GUI)
  54.  
  55.        - Due to the confusion Compuserve caused regarding the use of the
  56.          GIF-format all GIF's are now IFF-ILBM's (If your viewer
  57.          cannot handle this, use netPBM) sorry for this ...
  58.  
  59.  
  60.         CONTENTS:
  61.         ---------
  62.  
  63.         Shelly16.lha contains:
  64.  
  65.          - shelly (the executable for C= Amiga, 
  66.                    uses MC68020 and up & MC68881 and up )
  67.                    
  68.          - shelly.ix (another exe that uses ixemul.library 
  69.                       and is slightly faster)
  70.  
  71.          - src/shelly.c
  72.                shelly.h (source & header, ready to compile on various 
  73.                          machines)
  74.  
  75.          - pics/ examples.jpg (a picture of some examples) 
  76.                  Ammonite.jpg
  77.                  Turritella.jpg
  78.                  ... some more pictures
  79.  
  80.          - shy/ Planorbis.shy, Nautilus.shy, Lyria.shy, Ammonite.shy
  81.                 Oxystele.shy, Natalina.shy...  (some example data-files)
  82.  
  83.          - Shelly.guide (this document)
  84.            Shelly.doc   (^^^^ as plain text)
  85.  
  86.          - sh.tcl   (a small Tcl/Tk GUI for shelly)                                 
  87.  
  88.  
  89.  
  90.         REQUIREMENTS:
  91.         -------------
  92.  
  93.  
  94.         Shelly requires atleast:
  95.  
  96.          (to use the executables provided)
  97.  
  98.           - an Amiga (harddisk & fast processor recommended)
  99.  
  100.           - MC68882 (or up) FPU
  101.           
  102.           - POV-V2.0 or Real3DV2 to look at the results,
  103.             or the TDDDlib-converters if you want Shelly to 
  104.             create objects for Imagine etc.
  105.  
  106.           - the .ix exe needs ixemul.library !
  107.  
  108.  
  109.  
  110.          (on UX-Boxes)
  111.          
  112.           - an ANSI-C compliant compiler (GNU)
  113.  
  114.          
  115.           Shelly has been tested on the following machines:
  116.  
  117.           -A4000/030
  118.           -i486/Linux
  119.           -SUN4/10
  120.           -IBM/RS6000
  121.           -SGI/Indigo2
  122.           
  123.  
  124.         INSTALLATION:
  125.         -------------
  126.  
  127.         The installation of Shelly is very easy ...
  128.         Just copy the Drawer "Shelly" to a place 
  129.         where you would like to install it.
  130.  
  131.         and give it a '(g)cc shelly.c -o shelly -lm -O2' (not needed on Amiga)
  132.  
  133.  
  134.         QuickStart:
  135.         -----------
  136.  
  137.         To get started quickly :
  138.  
  139.          - install Shelly (described in Installation)
  140.  
  141.          - open a shell (CLI), cd to the directory "Shelly"
  142.  
  143.          - type 'shelly shy/Planorbis.shy t:xxx.pov'
  144.            (Planorbis is one of the examples, xxx.pov is the name of the 
  145.             POV-Scene Shelly will create)
  146.  
  147.          - now go and render the file 'xxx.pov'
  148.            (e.g. 'pov -ixxx.pov -f +d' (assuming you have pov in your path))
  149.  
  150.          perhaps you have to edit the file 'xxx.pov' (camera position etc.)
  151.          and try it again to get the best result... 
  152.  
  153.  
  154.  
  155.         GENERAL
  156.         -------
  157.  
  158.         just type
  159.  
  160.         'Shelly infile outfile'
  161.  
  162.         to run Shelly from a shell (CLI)
  163.         
  164.         - infile is the [path]name of a @{"datafile" link Datafiles}
  165.         - outfile is the [path]name of the POV/RPL/T3D/RAW/X3D outputfile
  166.  
  167.         - outfile will be overwritten (if it exists)!
  168.         
  169.         - Shelly will also open a file "[path]outfilename.tmp"!
  170.           and overwrite it (this is a temporary file, it will be
  171.           deleted after calculation)
  172.  
  173.  
  174.         DATAFILES:
  175.         ----------
  176.  
  177.         Shelly uses own datafiles in a simple format to get 
  178.         the arguments into the program.
  179.  
  180.  
  181.            Fileformat:
  182.            -----------
  183.  
  184.         The files are of a very simple (and easy to process :)) format:
  185.  
  186.         - every line of the file is scanned for @{"keywords" link Keywords}.
  187.  
  188.         - if a line contains no keyword it is treated like a comment
  189.  
  190.         - if a line contains a keyword it is interpreted 
  191.           (the number/string behind the keyword is copied into an internal 
  192.            structure: "alpha:30" sets the internal alpha value to 30) 
  193.           (or a flag is set:
  194.            "RPL" sets the flag "we_have_to_produce_an_RPL-file")
  195.  
  196.         - the only "Flag-keywords" the program knows are: 'POV','RPL','T3D',
  197.           'RAW','X3D','NORMAL','NODULE','NEWNOD','RENDER','BEZ'
  198.           all other keywords need to be combined with a number or string 
  199.           (as the ':' states)
  200.  
  201.         - everything is casesensitive! ('RPL' != 'rPl')
  202.  
  203.         - the file is not checked for anything else
  204.  
  205.         - double use of the same keyword causes an overwriting of the
  206.           last set value
  207.  
  208.         - lines like "alpha:Blafasel" will cause NO errormessage
  209.           (there are no messages at all ;))
  210.  
  211.  
  212.         note: the keyword does not have to stand alone!
  213.               if you write a line like:
  214.  
  215.               "/*RPL*/" or "BlafaseRPLl"
  216.  
  217.               the RPL-flag will be set! But you could also write:
  218.  
  219.               "render this in RPL pleazze :)"
  220.  
  221.  
  222.  
  223.         There is a special file ("Blank.shy") prepared for you that is blank
  224.         (contains only some necessary keywords).
  225.  
  226.         consider:
  227.  
  228.          - some parameters have to be given in degrees, some not
  229.            (look into the @{"algorithm" link Algorithm} section)
  230.  
  231.          - if you want Shelly to create a RPL file as output add a line
  232.            like "RPL" or "pleazze do it in RPL" to the file
  233.            ("T3D" will switch to T3D-output)
  234.            (POV output is default)
  235.  
  236.          - be careful with the parameters, don't try to fool Shelly 
  237.            ("what does it do if I enter an infinite value :)?") 
  238.            it will end up in a mess or coredump or our beloved friend
  239.            because the values are not checked!
  240.            
  241.            You should just change the given examples slightly until you 
  242.            know what you are doing...
  243.  
  244.          - o must be positive! (omin >= 0, omax > omin, od > 0)
  245.  
  246.         The following keywords are supported:
  247.  
  248.  
  249.         'alpha:'
  250.         'beta:'
  251.         'phi:'
  252.         'omega:'
  253.         'my:'
  254.         'smin:'
  255.         'smax'
  256.         'sd:'
  257.         'omin:'
  258.         'omax:'
  259.         'od:'
  260.         'P:'
  261.         'L:'
  262.         'A:'
  263.         'a:'
  264.         'b:'
  265.         'W1:'
  266.         'W2:'
  267.         'N:'
  268.         'RPL' (switches to RPL-output)
  269.         'POV' (guess)
  270.         'T3D' (hmm)
  271.         'RAW' (simply the coordinates of the created triangles)
  272.               ('rawtopov' makes smooth triangles for pov from this !)
  273.         'X3D' (output for fast viewing in x3d on X11)
  274.         'BEZ' POV-output in NORMAL-mode that uses Bezierpatches
  275.         
  276.         'NORMAL' (default calculation mode)
  277.  
  278.         'NODULE' (switches to new @{"calculation mode" link calcmod} (dynamic stepsize) 
  279.                   only useful when rendering shells with nodules!)
  280.         
  281.         'NEWNOD' (switches to new @{"calculation mode" link calcmod} (dynamic stepsize) 
  282.                   only useful when rendering shells with nodules!)
  283.         
  284.         'Scale:' defines a scale factor for the shell (default is 1.0)
  285.  
  286.         'RENDER' switches preview on (Shelly will automatically call POV
  287.                  after calculation)
  288.                  ONLY available when output-type == POV! and
  289.                  'pov' must be in the search-path!
  290.         
  291.         'POVARGS:' defines arguments of the pov-call
  292.                    (default is "-f +d +w200 +h160")
  293.                    use of this keyword overwrites all default-arguments 
  294.                    passed to pov! 
  295.                    (be sure to specify a complete argument-string for pov)
  296.                    "-ixxx" is added automatically (don't use this!)
  297.         
  298.         'P2:'    P of second nodule
  299.         'W12:'   W1 of second nodule
  300.         'W22:'   W2 of second nodule
  301.         'L2:'    L of second nodule
  302.         'N2:'    N of second nodule
  303.         'Off2:'  offset (in W2 (O) direction) between 
  304.                  nodule1 and nodule2 (in degrees)
  305.                  
  306.         'P3:'    P of third nodule
  307.         'W13:'   W1 of third nodule
  308.         'W23:'   W2 of third nodule
  309.         'L3:'    L of third nodule
  310.         'N3:'    N of third nodule
  311.         'Off3:'  offset (in W2 (O) direction) between 
  312.                  nodule1 and nodule3 (in degrees)
  313.  
  314.         'Scano:' stepsize for scanning the shell for nodules (in O-dir)
  315.                  & minimal possible stepsize! (default is 0.05) 
  316.         'Hdo:'   defines maximal height difference between two lines
  317.                  (default is 0.1)
  318.          
  319.         'Scans:' stepsize for scanning the shell for nodules (in S-dir)
  320.                  & minimal possible stepsize! (default is 0.05) 
  321.         'Hds:'   defines maximal height difference between two knotpoints in
  322.                  S-dir
  323.                  (default is 0.1)
  324.  
  325.  
  326.         'camx:'
  327.         'camy:'  x,y,z position of the camera for POV-output
  328.         'camz:'
  329.  
  330.  NEW in V1.6:
  331.      
  332.      'Steps:' INT     Number of objects to create 
  333.      'Animate:' FILE  switches to animation mode, uses FILE as name of 
  334.               datafile to interpolate to
  335.         'BEZ' s.a.
  336.  
  337.         (note that the ':' belongs to the keyword!  you can use
  338.          for instance the word 'alpha' with no risk in comment lines)
  339.  
  340.         (The meaning of a special parameter (keyword) can be found
  341.          in the section about the @{"algorithm" link Algorithm}.)
  342.  
  343.  
  344.        CALCULATION MODI:
  345.        -----------------
  346.  
  347.        There are several ways of calculating a shell (means dividing the
  348.        surface of the shell into subfaces)
  349.        
  350.        currently 3 methods are implemented in Shelly:
  351.        
  352.  
  353.           The NORMAL-MODE:
  354.           ----------------
  355.        just lays a grid (specified by smin,smax,sd,omin,omax,od) 
  356.        over the surface and calculates the knotpoints.
  357.        Then the knotpoints are connected to triangles, or used to build
  358.        a B-Spline-mesh.
  359.        
  360.        
  361.        
  362.        
  363.           The NODULE-MODE:
  364.           ----------------
  365.  
  366.        This is a new (changed in 1.5!!!) calculation mode that can 
  367.        save you object-data, up to 40%! (but only in shells with nodules!) 
  368.  
  369.        It is called "dynamic_stepsize" and can be invoked by using the
  370.        NODULE keyword. (default mode is NORMAL)
  371.        
  372.        How it works:
  373.        
  374.        - imagine a shell with nodules (look at "nodule.iff"),
  375.          if there is enough space between the nodules it might be
  376.          possible to increase the stepsize (in o-direction)
  377.          between the nodules without loss of information.
  378.  
  379.        - this means high resolution is only used when needed (in the nodules)
  380.          the rest of shell is calculated in a lower resolution
  381.          
  382.        - The Shell is scanned in (O-direction) for nodules (with a stepsize 
  383.          given via new keyword 'Scano:'). 
  384.          In a nodule Shelly will compute the height difference to the next 
  385.          line.
  386.          If the height difference exceeds a threshold (keyword 'Hdo:'), 
  387.          the stepsize will be made smaller just that it exactly matches 
  388.          the height difference.
  389.          The smallest possible step is limited by 'Scano:' too!)
  390.          
  391.        - Default value for  Scano: is 0.05
  392.                             Hdo:   is 0.1
  393.          this should be best for most cases, but feel free to experiment,
  394.          as smaller the Hdo: as finer the nodules are calculated.
  395.  
  396.  
  397.           The NEWNOD-MODE:
  398.           ----------------
  399.  
  400.        This mode is very similar to the NODULE mode, except that it does
  401.        the same thing (refinement dependant on height difference) for 
  402.        the S-direction too.(use 'NEWNOD' to switch to it)
  403.        This causes an irregular structure of the resulting grid, so that 
  404.        output as B-Spline-mesh is impossible (the RPL-output will create
  405.        a triset instead)!
  406.  
  407.        The keywords for the NODULE mode ('Scano:','Hdo:') are used aswell
  408.        as two new ones ('Scans:','Hds:').
  409.         
  410.        - Default value for  Scans: is 0.05
  411.                             Hds:   is 0.1
  412.         
  413.          this should be best for most cases, but feel free to experiment,
  414.          as smaller the Hds: as finer the nodules are calculated.
  415.  
  416.  
  417.       ANIMATION
  418.       ---------
  419.       
  420.       Idea for animation mode came from Steve Enns.
  421.       
  422.       It is useful for creating a sequence of objects of an 'evolving'
  423.       shell (you could do the same with objectmorphing in some
  424.       RT's ). 
  425.       You have to specify two different datafiles and a number.
  426.       Shelly will interpolate between the two files in number steps and 
  427.       create number objects!
  428.  
  429.       example
  430.  
  431.        in 'file1':
  432.  
  433.         Animate:file2         ;specifies filename of second datafile
  434.         Steps:10              ;specifies number of steps in animation
  435.         L:0.1
  436.       
  437.        in 'file2':
  438.       
  439.         L:2
  440.  
  441.       'shelly file1 out'
  442.  
  443.       will create 10 objects (named 'out0' - 'out9') where the noduleheight 
  444.       grows from 0.1 to about 1.9 .
  445.  
  446.       Last object (out9) will not be generated with L==2! (this is to
  447.       allow a chain of sequences without double created objects)
  448.       To generate an object with L==2 you must call Shelly again.
  449.       ('shelly file2 out10')
  450.  
  451.       shy/ anim.shy & animend.shy are an example.
  452.  
  453.  
  454.       Of course 'L' is NOT the only parameter that can be used for inter-
  455.       polation (try out ;).
  456.       And of course, you may change as much parameters as you want between
  457.       two files!
  458.      
  459.       Note:
  460.        Shelly will take outputformat from the first file.
  461.  
  462.        If the second file contains an 'Animate:' too, you have to restart
  463.        Shelly after calculation of the first sequence.
  464.        
  465.  
  466.          PROBLEMS
  467.          --------
  468.  
  469.            - it is nothing to be seen in POV:
  470.               probably the camera/light positions are wrong       
  471.               take a look at the data in your pov-file and correct this
  472.  
  473.            - POV tells me something from "degenerated triangles"
  474.               nothing serious, just some triangles with 2 points the same        
  475.  
  476.            - Imagine does not accept the Shelly-output
  477.               convert the output via 'readwrite' from the TDDD-Package
  478.               to the binary TDDD-format
  479.                      
  480.            - Real3Ds annoying "Stack full" message comes up everytime
  481.              a macro is executed:
  482.              
  483.               - change the RPL-stacksize (menu: Settings/RPL)
  484.                  (increase the "Parameter Stack")
  485.               - open a new RPL-window
  486.               - type: '"(path+)macroname" LOAD'
  487.  
  488.  
  489.            - strange numbers (NaN's) occur in the output:
  490.  
  491.               Well this problem is known to me but no solution (sorry).
  492.               
  493.               Since the algorithm is somewhat complex I really don't 
  494.               want to have to find out which combination of which 
  495.               parameters cause this.
  496.               
  497.               It is also a problem of the sideeffects and (numerical)
  498.               stability of the "mathematic" functions I call.
  499.               
  500.               note: I suppose zeros are the source of all this
  501.                     -> try to avoid them          
  502.  
  503.  
  504.         Hints
  505.         -----
  506.  
  507.         for Real3D-users:
  508.         
  509.     - if your shell appears to be open in o-direction. 
  510.       just close the u-direction in R3D2 (modify/freeform/open,close)
  511.  
  512.         - if you want nodules in RPL-objects:
  513.  
  514.           You should choose proper values of od and sd to see the nodules
  515.           at all
  516.            (if you have nodules that are 10░ wide (in o-direction) and you 
  517.             choose an od of 40░ you will see probably no nodules!)
  518.            (this is also important for the POV-output)
  519.  
  520.           You should double the nodule height (L) for B-Spline objects 
  521.           to get the same height of the nodules as a POV-output!
  522.  
  523.         - if you want to create a shell without nodules you may
  524.           double the sd and od values for B-Spline objects without loss
  525.           of quality in many cases
  526.  
  527.  
  528.         The Algorithm:
  529.         --------------
  530.  
  531.         In this section you will find more detailed information on the 
  532.         algorithm used by Shelly and on the parameters it uses.
  533.  
  534.         There is a new picture (pic/parameters.iff) that illustrates some
  535.         parameters (better than text I hope ;)
  536.  
  537.         - The basic idea of the algorithm is to simulate a shell shape
  538.           by rotating & moving (©ing) an ellipse (or a part of an 
  539.           ellipse, or any other curve (a cardiod)) around an axis.
  540.           This will end up in some sort of spiral-shape.
  541.  
  542.         - The shape produced will depend on many things like:
  543.                -starting size/place/orientation of the ellipse
  544.                -exact form of the ellipse (nodules)
  545.                -how fast is the ellipse growing while rotating etc.
  546.  
  547.         - you can find the exact formulas in the original article or
  548.           in the sourcecode (too lazy to write them here again, they are
  549.           very complex)
  550.  
  551.         - here is a list of all parameters that shelly needs to generate 
  552.           a shell:
  553.  
  554.          -angular parameters (given in degrees):
  555.           alpha    :equiangular angle of spiral
  556.           beta     :angle between z-axis and line from aperture local 
  557.                     origin to xyz-origin
  558.           phi      :tilt of ellipse major axis from horizontal plane
  559.           omega    :amount of azimuthal rotation of aperture
  560.           my       :amount of "leaning over" of aperture
  561.  
  562.           smin     :angle at which aperture generating curve begins
  563.           smax     :angle at which aperture generating curve ends
  564.           sd       :stepsize in s-direction
  565.           omin     :angle at which spiral begins
  566.           omax     :angle at which spiral ends
  567.           od       :stepsize in o-direction
  568.  
  569.           P        :position of nodule, in terms of angle s
  570.           W1       :width of nodule in s-direction
  571.           W2       :width of nodule in o-direction
  572.  
  573.          -linear dimensions
  574.           A        :distance from main origin of aperture at o=0
  575.           a        :major radius (long axis) of ellipse at o=0
  576.           b        :minor radius (short axis) of ellipse at o=0
  577.           L        :height of nodule at o=0
  578.  
  579.          -other
  580.           N        :number of nodules per whorl
  581.  
  582.  
  583.         - the parameters smin,smax,sd,omin,omax,od determine
  584.           how many triangles (controlpoints) are generated
  585.           (how smooth is the shell and how many whorls are generated) 
  586.           -> be careful with these: memory usage and filesize depend 
  587.              directly on this parameters
  588.  
  589.         - the parameters alpha,beta,phi,omega,my determine the orientation
  590.           of the ellipse before (and while) rotating
  591.  
  592.         - the parameters A,a,b determine starting place and size of the 
  593.           ellipse
  594.           
  595.         - the parameters P,N,L,W1,W2 determine number,size and place
  596.           of nodules
  597.  
  598.  
  599.         Credits:
  600.         -------- 
  601.  
  602.         Thanks to:
  603.         
  604.         the 3 people e-mailing me to keep on work on Shelly
  605.         
  606.         M.B. Cortie for his article "Digital Seashells"
  607.  
  608.         the people who ported GCC & CSH to the Amiga
  609.  
  610.  
  611.  
  612.         DISTRIBUTION:
  613.         -------------
  614.  
  615.         Shelly may be distributed FREELY via any media as long as:
  616.  
  617.         1) The @{"contents" link Contents} of the Archive remain unchanged.
  618.  
  619.         2) No money (except a small copying fee) changes hand.
  620.  
  621.  
  622.  
  623.         (Although Shelly is Freeware I won't reject gifts like
  624.          money, chocolate, your latest piece of (gfx related) code etc..
  625.          My adress can be found under "@{"contacting the author" link adress}".)
  626.  
  627.  
  628.         DISCLAIMER:
  629.         -----------
  630.  
  631.         This program comes with no warranty, either expressed or implied.
  632.         The author is in no way responsible for any damage or loss that 
  633.         may occur due to direct or indirect usage of this software.
  634.         Use this software entirely at your own risk.
  635.  
  636.         contacting the Author:
  637.         ----------------------
  638.         
  639.         send 
  640.         chocolate, money, your programs, bug reports etc.
  641.         to:
  642.  
  643.         Randolf Schultz
  644.         Unter den Linden 51
  645.         19079 Mirow
  646.         GERMANY
  647.         
  648.         FON: 0385/272066 (ONLY at the weekend!!!)
  649.  
  650.         INTERNET: rschultz@informatik.uni-rostock.de 
  651.  
  652.  
  653.  
  654.          
  655.  
  656.        History:
  657.        --------
  658.  
  659.        from V1.5 to V1.6:
  660.        ------------------
  661.        - added simple animation mode -> @{"Usage" link Usage} 
  662.        
  663.        - more example pictures (pic/) + their datafiles (shy/) available,
  664.          mostly rendered with Real3D on my A4000
  665.        
  666.        - the exe does not need ixemul.library anymore 
  667.          (but shelly.ix !)
  668.  
  669.        - a new (POV-)output-mode uses Bezierpatches (Keyword: 'BEZ')
  670.  
  671.        - R3D2-output of NEWNOD-mode creates a "triset" instead of a bunch of
  672.          triangles
  673.        
  674.        - added pic/parameters.iff (illustrates the use of some parameters),
  675.          (took me some hours with PPaint ;)
  676.  
  677.        - Daniel Aregger programmed a nice GUI for Shelly 
  678.          (for the Amiga) 
  679.          this will be uploaded separately, look for FSG (Funky Shelly GUI)
  680.  
  681.        - Due to the confusion Compuserve caused regarding the use of the
  682.          GIF-format all GIF's are now IFF-ILBM's (If your viewer
  683.          cannot handle this, use netPBM) sorry for this ...
  684.  
  685.  
  686.  
  687.        from V1.4 to V1.5:
  688.        ------------------
  689.        - changed NODULE-mode (consult the @{"Usage" link Usage} section!)
  690.          (some keywords are gone!)
  691.        
  692.        - added new calculation-mode (NEWNOD)^^^!
  693.        
  694.        - added new output (X3D, a VERY fast model-viewer for X11)
  695.        
  696.        - included a small Tcl/Tk-GUI (start with 'wish -file sh.tcl'
  697.          it should be self explanatory, so no documention ... yet?)
  698.        
  699.        - fixed some problems with not initialized data
  700.        
  701.        - allows to set cameraposition for pov-output now (overrides internal
  702.          calculation of the position)
  703.  
  704.  
  705.        from V1.3 to V1.4:
  706.        ------------------
  707.        - fixed a bug in the NODULE calculation-mode (Shelly could end up
  708.          in an infinite loop for some parameters)
  709.  
  710.        - fixed a bug that caused "Float-Exceptions" (when calculating
  711.          shells without nodules) on Alpha-Architecture (and others?)
  712.        
  713.        - added "RENDER"-feature (Shelly calls POV itself to render a 
  714.          preview)
  715.        
  716.        - added "Scale"-feature (the shell may be scaled now)
  717.        
  718.        - Shelly now supports 3 different nodule-types in one shell
  719.          (see threenod.shy)
  720.        
  721.        - Shelly now produces outputfiles with the right versionnumber ;)
  722.        
  723.        
  724.        from V1.2 to V1.3:
  725.        ------------------
  726.        - fixed a bug in the nodule creation (nodules were not 
  727.          symmetrical)
  728.        
  729.        - added new calculation mode (I call it "dynamic_stepsize"),
  730.          please consult the @{"Usage" link Usage} section!
  731.        
  732.        - added new outputtype ("RAW")
  733.        
  734.        - shelly uses a temporary file for calculation of the camera-
  735.          position (rather than calculating all points twice) now!
  736.  
  737.               
  738.        from V1.0 to V1.2:
  739.        ------------------
  740.        - added "autofocus" for POV-output (automatic placement of the 
  741.          camera in the right distance) 
  742.  
  743.        - the file 'shelly.pov' is never consultet now!
  744.        
  745.        - the RPL-output now generates much (100 times) smaller objects
  746.  
  747.        - added T3Dlib-support (new Keyword is 'T3D'!)
  748.        
  749.        - the silly countdown is gone
  750.        
  751.        - this time Shelly comes with only one guide ! (hope so :))
  752.  
  753.        
  754.  
  755.  
  756.  
  757.